package com.dingding.dao.userorderdao.impl;

import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.dingding.common.core.beans.special.Userspecialorder;
import com.dingding.dao.basedao.impl.BaseDaoImpl;
import com.dingding.dao.sql.SpecialOrderDaoSql;
import com.dingding.dao.userorderdao.ISpecialOrderCommentDao;

/** 
 * @ClassName: ISpecialOrderCommentDaoImpl 
 * @Description: 专车-订单评价实现类
 * @author SUNZHICHENG 
 * @date 2016年8月31日 下午5:26:58 
 * @version v2.4.0
*/
public class ISpecialOrderCommentDaoImpl extends BaseDaoImpl<Userspecialorder> implements ISpecialOrderCommentDao{
	private Logger log=Logger.getLogger(this.getClass());
	/**
	 * 
	 * @Title: setOrderAlreadyEvaluated 
	 * @Description: 设置专车订单为已评价（乘客对车主评价）
	 * @param orderId 订单ID
	 * @return boolean 
	 * @author SUNZHICHENG  
	 * @date  2016年8月31日 下午5:26:00
	 * @since v2.4.0
	 */
	@Override
	@Transactional(propagation=Propagation.REQUIRED)
	public boolean setOrderAlreadyEvaluated(String orderId) {
		try {
			int row = super.updateSqlRow(SpecialOrderDaoSql.SET_ORDER_ALREADY_EVALUATE, orderId);
			if (row>0) {
				return true;
			}
		} catch (Exception e) {
			log.error("设置专车订单为已评价出现异常！订单ID为：" + orderId,e);
		}
		return false;
	}
	
	/**
	 * 
	 * @Title: getSpecialOwnerId 
	 * @Description: 乘客评价完车主后，需要对车主重新计算一个平均信誉值。 需要用到车主ID,当前接口由此产生
	 * @param orderId
	 * @return String 
	 * @author SUNZHICHENG  
	 * @date  2016年8月31日 下午7:28:03
	 * @since v2.4.0
	 */
	@Override
	@Transactional(readOnly = true)
	public String getSpecialOwnerId(String orderId) {
		List<Object[]> objects = null;
		try {
			objects = super.sqlQueryListObj(SpecialOrderDaoSql.GET_SPECIAL_OWNERId, false, orderId);
		} catch (Exception e) {
			log.error("乘客评价完成后，更新车主信誉值时获取车主ID出现异常！"+this.getClass(), e);
		}
		if (objects != null && objects.size() > 0) {
			Object obj = objects.get(0);
			return obj.toString();
		}
		
		return null;
	}

	
}
